home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / FWKundenüber.cusrexx < prev    next >
Text File  |  1998-11-16  |  4KB  |  185 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der Kundenübersicht mit Hilfe von FinalWriter
  3. ** $VER: FWKundenüber.cusrexx V1.00 (17.11.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. FWVorlage    = "FWDokumente/Kundenübersicht.fw";
  12. FWDokument    = "t:Kundenübersicht.fw";
  13. FWPort        = "FINALW."
  14.  
  15. LF                = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (FWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             FWPort     = FWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "FinalWriter ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original FW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. FWVorlage        = MTR_RESULT || FWVorlage;
  39. ADDRESS COMMAND "copy" FWVorlage FWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  55.     ADDRESS VALUE FWPort;
  56.     SCREENTOFRONT;
  57.  
  58.     CALL DatenAufbereiten;
  59.     SELECT;
  60.         WHEN Druckart = 0 THEN    /* Drucken    */
  61.             DO;
  62.                 ADDRESS VALUE FWPort;
  63.                 PRINT;
  64.                 ADDRESS VALUE ARexxPort;
  65.                 MTSCREENTOFRONT;
  66.             END;
  67.         WHEN Druckart = 1 THEN    /* Vorschau    */
  68.             ADDRESS VALUE ARexxPort;
  69.         WHEN Druckart = 2 THEN    /* Sichern    */
  70.             DO;
  71.                 ADDRESS VALUE FWPort;
  72.                 SAVEAS;
  73.                 ADDRESS VALUE ARexxPort;
  74.                 MTSCREENTOFRONT;
  75.             END;
  76.         OTHERWISE
  77.             DO;
  78.                 ES_TITLE                = "Warnung";
  79.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  80.                 ES_GADGETFORMAT    = "Ok";
  81.                 EASY_REQUEST;
  82.                 Ende_Kennzeichen    = 'J';
  83.             END;
  84.     END;
  85.  
  86.     PRINTFIND;
  87. END;
  88.  
  89. /* WordWorth-Datei aus t: wieder entfernen */
  90. ADDRESS COMMAND "delete" FWDokument;
  91.  
  92. /* Oberfläche wieder entsperren */
  93. ADDRESS VALUE ARexxPort;
  94. FREEGUI;
  95.  
  96. EXIT;
  97.  
  98. DatenAufbereiten:
  99.  
  100.     ADDRESS VALUE FWPort;
  101.     CLEARDOC;
  102.     OPEN FWDokument;
  103.  
  104.     FIND "<NR>";
  105.     FINDNEXT;
  106.     STATUS LinePos;
  107.     PARSE VAR RESULT BegLine BegPosition EndLine EndPosition;
  108.     MoveToLine BegLine 0;
  109.     ShiftDown;
  110.     MoveToLine (BegLine + 2) 0;
  111.     ShiftUp;
  112.     CUT;
  113.  
  114.     DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  115.         ADDRESS VALUE FWPort;
  116.         PASTE;
  117.  
  118.         IF PREFS.NUMBER_DIGITS > 0 THEN
  119.             ZW_Nummer = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS );
  120.         ELSE
  121.             ZW_Nummer = MTR_RESULT;
  122.  
  123.         IF CUSTOMER.ADDRESS.COMPANY1 > "" THEN
  124.             ZW_Name = CUSTOMER.ADDRESS.COMPANY1;
  125.         ELSE
  126.             ZW_Name = CUSTOMER.ADDRESS.PRENAME CUSTOMER.ADDRESS.SURNAME;
  127.  
  128.         IF BegLine > 3 THEN
  129.             MoveToLine (BegLine - 3) 0;
  130.         ELSE
  131.             MoveToLine 1 0;
  132.         FIND "<NR>";
  133.         STATUS LinePos;
  134.         PARSE VAR RESULT BegLine BegPosition EndLine EndPosition;
  135.         TYPE ZW_Nummer;
  136.  
  137.         FIND "<COMPANY_NAME>";
  138.         IF ZW_NAME = "" THEN
  139.             TYPE " ";
  140.         ELSE
  141.             TYPE ZW_Name;
  142.  
  143.         FIND "<STREET>";
  144.         IF CUSTOMER.ADDRESS.STREET = "" THEN
  145.             TYPE " ";
  146.         ELSE
  147.             TYPE CUSTOMER.ADDRESS.STREET;
  148.  
  149.         FIND "<ZIP>";
  150.         IF CUSTOMER.ADDRESS.ZIP = "" THEN
  151.             TYPE " ";
  152.         ELSE
  153.             TYPE CUSTOMER.ADDRESS.ZIP;
  154.  
  155.         FIND "<CITY>";
  156.         IF CUSTOMER.ADDRESS.CITY = "" THEN
  157.             TYPE " ";
  158.         ELSE
  159.             TYPE CUSTOMER.ADDRESS.CITY;
  160.  
  161.         FIND "<PHONE>";
  162.         IF CUSTOMER.ADDRESS.PHONE = "" THEN
  163.             TYPE " ";
  164.         ELSE
  165.             TYPE CUSTOMER.ADDRESS.PHONE;
  166.  
  167.         FIND "<FAX>";
  168.         IF CUSTOMER.ADDRESS.FAX = "" THEN
  169.             TYPE " ";
  170.         ELSE
  171.             TYPE CUSTOMER.ADDRESS.FAX;
  172.  
  173.         FIND "<E-MAIL>";
  174.         IF CUSTOMER.ADDRESS.EMAIL.0 = "" THEN
  175.             TYPE " ";
  176.         ELSE
  177.             TYPE CUSTOMER.ADDRESS.EMAIL.0;
  178.         MoveToLine (BegLine + 2) 0;
  179.  
  180.         ADDRESS VALUE ARexxPort;
  181.         PRINTFIND;
  182.     END;
  183. RETURN;
  184.  
  185.